package cn.ibdsr.human.service;

import cn.ibdsr.human.transfer.job.*;
import cn.ibdsr.human.transfer.platform.LatestJobItem;

import java.util.List;

/**
 * @description:
 * @author: cdl
 * @email: iamcimon@qq.com
 * @date: 2021/8/4 9:48
 */
public interface JobService {
    /**
     * 保存工作信息
     * @param userId
     * @param jobSaveDTO
     * @return
     */
    Long publishJob(Long userId, JobSaveDTO jobSaveDTO);
    /**
     * 编辑工作信息
     * @param jobSaveDTO
     * @return
     */
    Long editJob(Long userId,JobSaveDTO jobSaveDTO);

    /**
     * 获取岗位详情信息
     * @param id
     * @return
     */
    JobResponseDTO getJobDetail(Long id);

    /**
     * 分页查询工作信息
     * @param jobQueryDTO
     * @return
     */
    JobListResponseDTO getJobList(JobQueryDTO jobQueryDTO);

    /**
     * 发布和取消发布工作
     * @param userId
     * @param jobSaveDTO
     * @return
     */
    Long publishJobOrNot(Long userId, JobOperatorDTO jobSaveDTO);

    /**
     * 删除工作
     * @param userId
     * @param id
     * @return
     */
    Long delete(Long userId, Long id);

    /**
     * 用户端获取工作列表
     * @param jobQueryDTO
     * @return
     */
    JobCompanyResponseDTO getUserJobList(JobQueryDTO jobQueryDTO);

    /**
     * 平台分页获取岗位信息
     * @param jobQueryDTO
     * @return
     */
    JobUserResponseDTO getPlatformJobList(JobQueryDTO jobQueryDTO);

    /**
     * 获取最新的工作岗位数据
     * @return
     */
    List<LatestJobItem> getLatestJob();
}
